home *** CD-ROM | disk | FTP | other *** search
/ Aminet 5 / Aminet 5 - March 1995.iso / Aminet / dev / misc / LEDA_gene.lha / LEDA-3.1c-generic / incl / LEDA / interval_set.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-08-05  |  1.4 KB  |  72 lines

  1. /*******************************************************************************
  2. +
  3. +  LEDA  3.1c
  4. +
  5. +
  6. +  interval_set.h
  7. +
  8. +
  9. +  Copyright (c) 1994  by  Max-Planck-Institut fuer Informatik
  10. +  Im Stadtwald, 6600 Saarbruecken, FRG     
  11. +  All rights reserved.
  12. *******************************************************************************/
  13.  
  14.  
  15. #ifndef LEDA_INTERVAL_SET_H
  16. #define LEDA_INTERVAL_SET_H
  17.  
  18. #include <LEDA/d2_dictionary.h>
  19.  
  20. typedef dic2_item is_item;
  21.  
  22.  
  23.  
  24.  
  25.  
  26. class Interval_Set : public d2_dictionary<double,double,GenPtr> {
  27.  
  28. public:
  29.  
  30. double    left(is_item it) { return key1(it); }
  31. double    right(is_item it){ return key2(it); }
  32.  
  33. list<is_item>  intersection(double x, double y)
  34. { list<dic2_item> L = range_search(-MAXFLOAT,y,x,MAXFLOAT);
  35.   return *((list<is_item>*)&L);
  36. }
  37.  
  38.  Interval_Set()  {}
  39. ~Interval_Set()  {}
  40. };
  41.  
  42.  
  43.  
  44.  
  45.  
  46. template <class itype>
  47.  
  48. class _CLASSTYPE interval_set : public Interval_Set{
  49.  
  50. public:
  51.  
  52. itype   inf(is_item it)  { return ACCESS(itype,Interval_Set::inf(it)); }
  53.  
  54. is_item insert(double x, double y, itype i)
  55.                       { return Interval_Set::insert(x,y,Copy(i)); }
  56.  
  57. void    change_inf(is_item it, itype i)
  58.                       { Interval_Set::change_inf(it,Copy(i)); }
  59.  
  60. list<is_item>  intersection(double x, double y)
  61.                          { return Interval_Set::intersection(x,y); }
  62.  
  63.  interval_set()  {}
  64. ~interval_set()  {}
  65. };
  66.  
  67. #define forall_is_items(i,D) forall_dic2_items(i,D)
  68.  
  69. #endif
  70.  
  71.